import { request } from '../../request/index.js'
Page({
  data: {
    tabs: [
      {
        id: 0,
        value: '综合',
        isActive: true
      },
      {
        id: 1,
        value: '销量',
        isActive: false
      },
      {
        id: 2,
        value: '价格',
        isActive: false
      }
    ],
    goodsList: []
  },
  // 数据列表接口要的参数
  QueryParams: {
    query: '',
    cid: '',
    pagenum: 1,
    pagesize: 10
  },
  // 数据列表的总页数
  totalPages: 1,
  /**
   * 生命周期函数--监听页面加载
   */
  onShow: function () {
    let pages = getCurrentPages();
    let current = pages[pages.length - 1];
    let options = current.options;
    this.QueryParams.cid = options.cid || '';
    this.QueryParams.query = options.query || '';

    this.getGoodsList()
  },
  // 标题点击事件，获取点击的索引
  handleTabsItemChange(e) {
    // 获取被点击的标题的索引
    const { index } = e.detail
    // 获取原数组
    let { tabs } = this.data
    tabs.forEach((item, i) => i === index ? item.isActive = true : item.isActive = false)
    // 将改变后的 tabs 数组 放回 data 中
    this.setData({
      tabs
    })
  },
  // 获取商品列表数据
  async getGoodsList() {
    const { data } = await request({ url: '/goods/search', data: this.QueryParams })
    this.totalPages = Math.ceil(data.message.total / this.QueryParams.pagesize)
    this.setData({
      goodsList: [...this.data.goodsList, ...data.message.goods,]
    })
    // 关闭下拉刷新的窗口,如果没有调用下拉刷新的接口,直接关闭也不会报错
    wx.stopPullDownRefresh()
  },
  // 页面上拉触底事件的处理函数
  onReachBottom() {
    // 判断还有没有下一页数据
    if (this.QueryParams.pagenum >= this.totalPages) {
      wx.showToast({
        title: '没有下一页数据了',
        icon: 'none',
      });
    }else{
      this.QueryParams.pagenum++
      this.getGoodsList()
    }
  },
  // 页面上来刷新 页面
  onPullDownRefresh(){
    // 将 商品列表数组清空
    this.setData({
      goodsList: []
    })
    // 设置页数为 第一页
    this.QueryParams.pagenum = 1;
    // 重新请求数据
    this.getGoodsList()
  }
})